본문으로 건너뛰기

#1 버전 관리 시스템

Git을 설치하고 사용하기 전에 Git이 무엇인지에 대해서 먼저 알아보자.
Git은 버전 관리 시스템(VCS) 중 하나이다.


버전관리란?

버전관리는 파일의 변화를 시간에 따라 기록하고, 나중에 특정 시점으로 돌아갈 수 있도록 관리해주는 시스템이다.
소스코드뿐만 아니라 이미지나 문서 등 모든 파일에 적용할 수 있다.

예를 들어,

  • 일부분을 이전 시점으로 되돌리거나
  • 삭제한 파일을 복구하는 것도 쉽게 할 수 있다.

버전 관리 시스템의 종류

크게 다음 세 가지로 나뉜다.

  1. 로컬 버전 관리 시스템 (Local VCS)
  2. 중앙집중식 버전 관리 시스템 (Centralized VCS)
  3. 분산 버전 관리 시스템 (Distributed VCS)

1. 로컬 버전 관리 시스템 (Local VCS)

파일을 디렉터리별로 복사하여 관리하는 가장 단순한 형태

[내가 옛날에 했던 방식]
프로젝트.zip_2022-01-01
프로젝트.zip_2022-01-02

단순하지만, 실수로 덮어쓰거나 삭제할 위험이 크다.
그래서 간단한 DB 형태로 변경 이력을 저장하는 툴이 등장했고, 대표적으로 rcs 같은 도구가 있다.

로컬 VCS 예시


2. 중앙집중식 버전 관리 시스템 (CVCS)

하나의 중앙 서버에 버전 DB를 두고, 클라이언트가 이를 참조하는 방식

CVCS 구조

장점

  • 누가 어떤 작업을 했는지 추적 가능
  • 관리자 관점에서 전체 프로젝트 파악 가능

단점

  • 서버가 다운되면 아무도 작업 불가
  • 백업이 없으면 전체 자료가 유실될 수도 있음

3. 분산 버전 관리 시스템 (DVCS)

클라이언트가 전체 저장소를 복제하고, 서로 푸시/풀로 동기화하는 구조

Git도 여기에 속한다.

DVCS 구조

장점

  • 서버가 없어도 로컬 저장소로 복구 가능
  • 리모트 저장소를 통해 다양한 협업 구조 지원
  • 분산되어 있어 안정성, 유연성, 협업 효율이 높다

버전 관리 시스템을 이해하고 나면 Git의 철학과 구조도 자연스럽게 이해할 수 있다.
이제부터 Git을 제대로 다뤄보자.